package com.zryc.shop.ums.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zryc.shop.ums.entity.Admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zryc.shop.ums.entity.Menu;
import com.zryc.shop.ums.entity.Role;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * <p>
 * 后台用户表 服务类
 * </p>
 *
 * @author zhaozhao
 * @since 2024-01-16
 */
public interface IAdminService extends IService<Admin> {

    /**
     * 更新管理员状态
     *
     * @param id
     * @param status
     * @return
     */
    Object updateAdminStatus(Long id, Integer status);

    /**
     * 更新管理员信息
     *
     * @param id
     * @param admin
     * @return
     */
    Object updateAdmin(Long id, Admin admin);

    /**
     * 修改管理员密码
     *
     * @param id
     * @param oldPass
     * @param newPass
     * @return
     */
    Object updateAdminPassword(Long id, String oldPass, String newPass);

    /**
     * 分页查询admin
     *
     * @param keyword  关键字 用户名/昵称
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<Admin> list(String keyword, Integer pageNum, Integer pageSize);


    /**
     * 管理员登录
     *
     * @param username
     * @param password
     * @return
     */
    Admin login(String username, String password);


    /**
     * 根据用户id查询所有菜单列表
     *
     * @param adminId
     * @return
     */
    List<Menu> getAllMenuByAdminId(Long adminId);

    /**
     * 通过id 删除管理员
     *
     * @param id
     * @return
     */
    Object deleteAdminById(Long id);


    /**
     * 登出
     *
     * @param session
     * @return
     */
    Object logout(HttpSession session);
}
